def quick_sort(arr):
    # 基本情况：如果数组只有一个元素或没有元素，它已经是排序好的
    if len(arr) <= 1:
        return arr
    else:
        # 选择基准值，这里选择了数组中间的元素
        pivot = arr[len(arr) // 2]  # 使用 // 运算符进行整数除法
        
        # 使用列表推导式创建小于基准值的元素列表
        # left = [x for x in arr if x < pivot] # 列表推导式
        left = []
        for x in arr:
            if x < pivot:
                left.append(x)


        
        # 使用列表推导式创建等于基准值的元素列表
        # middle = [x for x in arr if x == pivot]
        middle = []
        for x in arr:
            if x == pivot:
                middle.append(x)

        
        # 使用列表推导式创建大于基准值的元素列表
        # right = [x for x in arr if x > pivot]
        right = []
        for x in arr:
            if x > pivot:
                right.append(x)
        
        
        # 递归地对左边和右边的子数组进行快速排序，并将结果连接起来
        return quick_sort(left) + middle + quick_sort(right)

# 示例数组
array = [3, 6, 8, 10, 1, 2, 5 , 1]

# 调用快速排序函数对数组进行排序
sorted_array = quick_sort(array)

# 打印排序后的数组
print(sorted_array)